import java.io.File;
import java.io.IOException;
import java.util.Scanner;

/**
 * @Author YuanYuan
 * @Date 2022/10/7
 * @Time 16:58
 */
public class Demo1 {
    /**
     * 扫描指定目录，并找到名称中包含指定字符的所有普通文件（不包含目录），
     * 并且后续询问用户是否要删除该文件
     * @return
    */

    private static void soutDir() throws IOException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要查找的目录:");
        File file = new File(scanner.next());
        //判断目录是否存在
        boolean flag = file.isDirectory();
        if(!flag) {
            System.out.println("要查找的目录不存在!");
            return;
        }
        System.out.println("请输入要删除文件名包含的字符:");
        String delfilename = scanner.next();
        scanFile(file,delfilename);
    }

    //扫描目录
    private static void scanFile(File file, String delfilename) throws IOException {
        File[] files = file.listFiles();
        //遍历目录下的文件
        for (File f:
             files) {
            //如果是目录,递归访问下目录
            if(f.isDirectory()) {
                //打印一下相对路径
                System.out.println(f.getCanonicalPath());
                scanFile(f,delfilename);
            }else {
                //如果是文件,判断是否删除
                fileDelete(f,delfilename);
            }
        }
    }
    //判断是否删除
    private static void fileDelete(File f, String delfilename) throws IOException {
        if(f.getName().contains(delfilename)) {
            System.out.println("请问您要删除"+f.getCanonicalPath()+"路径下的"+f.getName()+"文件吗?  (Y/N) ");
            Scanner scanner = new Scanner(System.in);
            String ensure = scanner.next();
            if(ensure.equals("Y")) {
                f.delete();
            }
        }
    }

    public static void main(String[] args) throws IOException {
        soutDir();
    }

}
